#ifndef TAGKEZELO
#define TAGKEZELO

#include "telem.h"
#include "tdeklaracio.h"
#include "tmegjegy.h"
#include "tszoveg.h"


class Tagkezelo {

private:
    TElem *xmldoc;
    Tag *akt;
public:
    enum Exceptions{NGY, NIGY, DOC_ERASE, DEK_ERASE, MISS_EQ, MISS_CAT, WRONG_CLOSE};
    Tagkezelo() {xmldoc = new TElem("xmldoc"); akt = xmldoc;}
    void szulore();
    void gyerekre(const int &sorsz);
    void torles();

    //uj tag
    void ujelem(std::string sz, bool nyito = false);
    void elemzaro(std::string sz);
    void ujmeg(std::string sz);
    void ujszoveg(std::string sz);
    void ujdek(std::string sz);

    void modnev(std::string nev);
    void ujatri(std::string nev, std::string ertek);
    void torlesatri(std::string nev);
    void modatri(std::string nev, std::string ertek);
    bool hasatri();

    bool docstart(){return (akt == xmldoc);}
    const Tag* akttag(){return akt;}

    std::string docstring();
    std::string aktualis();
    ~Tagkezelo(){delete xmldoc;}
};

#endif
